package com.info.zhiduoduo.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 标记 系统中要记录执行的定时任务。用在定时任务的方法上。
 * <p> 配合{@code ZddTaskAspect} 在执行定时任务时自动记录执行结果。
 */
@Target({ElementType.METHOD})
@Retention(RUNTIME)
@Documented
public @interface ZddTask {

	/**
	 * 定时任务名称，必须保证唯一性。用这个字段作为数据库表的唯一索引，并匹配定时任务。
	 */
	String name();

	/**
	 * 任务旧名称，默认空。为了方便直接在代码中修改任务名称，并同步更新数据库。
	 */
	String oldName() default "";

	/**
	 * 任务处理业务逻辑
	 */
	String desc() default "";

	/**
	 * 任务周期描述，比如：每分钟一次；每月1日执行。
	 */
	String cronDesc() default "";
}
